package com.mo.lib.utils.view

import android.os.Build
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import android.webkit.WebView

/**
 * @ author：mo
 * @ data：2021/9/15:9:18
 * @ 功能：WebVeiw 扩展类
 */

/** 默认初始化设置webview*/
fun WebView.initDefult() {
    val settings: WebSettings = this.getSettings() //启用支持javascript //启用支持javascript
    settings.javaScriptEnabled = true //        加载网页有时候会左右滑动，没法自适应屏幕，就加上下面的两句话
    //设定支持viewport  设置此属性，可任意比例缩放
    //        加载网页有时候会左右滑动，没法自适应屏幕，就加上下面的两句话
    //设定支持viewport  设置此属性，可任意比例缩放
    settings.useWideViewPort = true
    settings.loadWithOverviewMode = true //        指定编码
    //        指定编码
    settings.defaultTextEncodingName = "utf-8" //设定支持缩放
    //        settings.setSupportZoom(true);
    //        是否显示缩放工具，默认为false。
    //        settings.setBuiltInZoomControls(true);
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //        不显示垂直滚动条
    //设定支持缩放
    //        settings.setSupportZoom(true);
    //        是否显示缩放工具，默认为false。
    //        settings.setBuiltInZoomControls(true);
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //        不显示垂直滚动条
    this.setVerticalScrollBarEnabled(false) //        不显示水平滚动条
    //        不显示水平滚动条
    this.setHorizontalScrollBarEnabled(false) //设置 缓存模式
    //设置 缓存模式
    this.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE)

    // 开启 DOM storage API 功能

    // 开启 DOM storage API 功能
    this.getSettings().setDomStorageEnabled(true) //  页面加载好以后，再放开图片
    //  页面加载好以后，再放开图片
    this.getSettings().setBlockNetworkImage(false) // webview从5.0开始默认不允许混合模式,https中不能加载http资源,需要设置开启。
    // webview从5.0开始默认不允许混合模式,https中不能加载http资源,需要设置开启。
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        this.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW)
    }
    /** 设置字体默认缩放大小(改变网页字体大小,setTextSize  api14被弃用)*/
    /** 设置字体默认缩放大小(改变网页字体大小,setTextSize  api14被弃用) */
    this.getSettings().setTextZoom(100) // 排版适应屏幕
    // 排版适应屏幕
    this.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS) // 缩放比例 1
    // 缩放比例 1
    this.setInitialScale(1) //不加上，会显示白边
    //        mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    //不加上，会显示白边
    //        mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    this.setWebChromeClient(WebChromeClient())
}